Skip to content

feat(web): add Kazakh and Russian UI translations - #714

Open
mxm-slt wants to merge 1 commit into
solana-foundation:mainfrom
mxm-slt:codex/kazakhstan-ui-translations
Open

feat(web): add Kazakh and Russian UI translations#714
mxm-slt wants to merge 1 commit into
solana-foundation:mainfrom
mxm-slt:codex/kazakhstan-ui-translations

Conversation

@mxm-slt

@mxm-slt mxm-slt commented Jul 15, 2026

Copy link
Copy Markdown

What

Add complete Kazakh (kk) and Russian (ru) UI message catalogs for every current SDP web namespace and register both locales in the runtime catalog.

The PR now covers all nine English catalog files: root UI, shared UI, approvals, custody, Earn, issuance, payments, policies, and Private Channels. Locale-specific guidance also keeps future automated additions aligned with the reviewed terminology.

Why

Kazakh- and Russian-speaking users should be able to use the full dashboard in their preferred language without falling back to English in newer product areas.

This translation was prepared by Superteam KZ for Kazakhstan's Kazakh- and Russian-speaking communities. Kazakh is Kazakhstan's state language, while Russian is officially used on an equal footing with Kazakh in state organizations and local self-government bodies.

Impact

  • Enables complete Kazakh and Russian locale resolution across the dashboard.
  • Loads all translated namespaces at runtime instead of relying on English fallback.
  • Preserves typed message access, interpolation placeholders, markup, and product names.
  • Adds terminology checks for common machine-translation errors.

Validation

  • Catalog parity — 4,079 English keys, 4,079 Kazakh keys, and 4,079 Russian keys; no missing or extra keys.
  • Placeholder, markup, terminology, and contextual language audit — passed.
  • Changed-file Biome check — passed.
  • Translation catalog policy — passed.
  • Module boundary check — passed.
  • pnpm --filter sdp-web typecheck — passed.
  • pnpm --filter sdp-web test:unit — 1,009 tests passed.
  • pnpm test:scripts — 65 tests passed.
  • Excel review export — 4,079 round-trip-safe rows with stable source identifiers.

@vercel

vercel Bot commented Jul 15, 2026

Copy link
Copy Markdown

@mxm-slt is attempting to deploy a commit to the Solana Foundation Team on Vercel.

A member of the Team first needs to authorize it.

@mxm-slt mxm-slt changed the title feat(web): Add complete Russian and Kazakh UI translation catalogs feat(web): Add complete Kazakh and Russian UI translation catalogs Jul 15, 2026
@GuiBibeau

Copy link
Copy Markdown
Collaborator

Thank you!!! let's get the lint fixed and I'll test responsivness of the UI

@GuiBibeau

Copy link
Copy Markdown
Collaborator

@mxm-slt happy to get this merged once you feel ready!

@mxm-slt
mxm-slt force-pushed the codex/kazakhstan-ui-translations branch from dcd606b to 2988844 Compare August 11, 2026 10:01
@mxm-slt mxm-slt changed the title feat(web): Add complete Kazakh and Russian UI translation catalogs feat(web): add Kazakh and Russian UI translations Aug 11, 2026
@mxm-slt
mxm-slt force-pushed the codex/kazakhstan-ui-translations branch from 2988844 to 628cfb2 Compare August 11, 2026 11:51
@mxm-slt
mxm-slt marked this pull request as ready for review August 11, 2026 12:11
@greptile-apps

greptile-apps Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR registers Kazakh and Russian as supported dashboard locales and adds catalogs for every current namespace, together with translation guidance and catalog tests.

  • Adds kk and ru runtime locale registration and message assembly.
  • Adds Kazakh and Russian root, shared, approvals, custody, Earn, issuance, payments, policies, and Private Channels catalogs.
  • Extends locale guidance, documentation, and catalog parity coverage.

Confidence Score: 4/5

The recurring-payment Russian translations should be corrected before merging because they present collection as a refund and resume actions as résumé/CV operations.

Existing recurring-payment callers render the incorrect Russian strings directly in success, failure, and retry states, giving Russian users materially wrong information about the action performed or available.

Files Needing Attention: apps/sdp-web/messages/ru/dashboard-payments.json

Important Files Changed

Filename Overview
apps/sdp-web/src/i18n/config.ts Registers the two new locale identifiers; regional browser tags continue to resolve through the existing base-language fallback.
apps/sdp-web/src/i18n/messages.ts Imports and merges all Kazakh and Russian namespace catalogs into the runtime locale map.
apps/sdp-web/messages/ru/dashboard-payments.json Adds Russian payment translations but mistranslates collection and resume workflow messages shown by the recurring-payment detail UI.
apps/sdp-web/messages/kk/dashboard-payments.json Adds the Kazakh payment catalog with the inspected recurring-payment action meanings preserved.
.github/translation-guidance.json Adds Kazakh and Russian audience, terminology, and deterministic forbidden-term guidance.
apps/sdp-web/src/i18n/messages.unit.test.ts Extends locale acceptance and catalog-resolution tests to Kazakh and Russian.

Reviews (1): Last reviewed commit: "feat(web): add Kazakh and Russian UI tra..." | Re-trigger Greptile

"everyWeeks": "Каждые {count} недели",
"everyDays": "Каждые {count} дня",
"paymentActivated": "Активирован регулярный платеж.",
"collectionSubmitted": "Подача возврата регулярных платежей.",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Recurring-payment actions are mistranslated

When a Russian-locale user submits a collection or retries a failed resume, these strings describe a refund and a résumé/CV instead of the recurring-payment actions, causing the success message, error title, and retry button to communicate the wrong operation. The related resumeFailed and retryResume translations on lines 819 and 824 need the same correction.

File Used: .github/translation-guidance.json (source)

Knowledge Base Used: sdp-web dashboard app

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants